1. Field of the Invention
The present invention relates to an image processing device and an image processing method that convert input image information into intermediate code image data by band and execute rendering processing (conversion into bit map data) by supplying the converted intermediate code image data to a rendering mechanism, and a recording medium for the same.
2. Description of the Related Art
In a conventional image processing device, which does not have a memory sufficient for expanding the data for one page of an output image into the bit map data, divides the one page into multiple bands, and possesses multiple buffers (hereafter, referred to as xe2x80x9cband bufferxe2x80x9d)equivalent to the size of each band, it is required that input image information is temporarily converted into the format of the intermediate code image data.
As the intermediate code image data, when viewed from a band-divided original image (band image), there are one based on the run-length format of low abstraction and another one called as the display list of high abstraction, which is described by the plotting command format. In generating the intermediate code image data, except for a case that the input image information is generated in view of the band width in advance, since the generation of the intermediate code image data is sequentially conducted by band corresponding to the plotting position of the input image information, it is impossible to reserve areas (hereinafter, referred to as xe2x80x9cintermediate code image data holding blocksxe2x80x9d)for retaining the intermediate code image data collectively by band.
As a conventional technique for effectively holding the intermediate code image data, in the Japanese Published Unexamined Patent Application No. Hei 3-114856 (hereunder referred to as the first published application) is disclosed a system furnished with two band buffers. In this system, as the intermediate code image data is generated by band, first the intermediate code image data is stored in the basic block of the minimum capacity; and if the image data exceeds the capacity of the basic block, an extended block capable of holding some capacity of data is reserved to hold the intermediate code image data, and an intermediate code image data control table is provided which associates the block being used with the band.
Incidentally, as the input image information for one page is completed to be converted into the intermediate code image data, a rendering mechanism starts interpreting sequentially by band the intermediate code image data in the intermediate code image data holding blocks controlled by band, the data thus interpreted is written in the band buffers as the bit map data, and at the moment when the whole processing of the intermediate code image data in that band is completed, the bit map data is transferred to an output device.
If a runaway type printer (a printer which, once an output instruction is given, cannot stop its output on the way such as a laser printer) is used in this case, it will be necessary to expand the intermediate code image data into raster data in real time and supply the raster-expanded data to the printer. Here, if a speed by which the bit map data is generated in each band buffer is not faster than the printing speed of the printer, there will occur an overrun error (void resulting from failure in printing of the image by the concerned bit map data). Hence, before starting the rendering mechanism, a check is made by each band as to whether or not the speed of generating the bit map data in the band buffers exceeds the printing speed.
A hardware rendering mechanism is an implementation used in maintaining the rendering speed always faster than the printing speed, without deteriorating the picture quality of an output image. In the use of this hardware rendering mechanism, it is necessary to effectively supply the hardware rendering mechanism with the intermediate code image data holding blocks which are controlled by band and stored to be distributed on the memory.
A DMA (Direct Memory Access) transfer is a method that effectively supplies the hardware rendering mechanism with the intermediate code image data holding blocks, and a chained DMA control system makes it possible to transfer data areas distributed on the memory by starting the DMA once. The information that controls the DMA controller in that case is retained by a descriptor including at least information regarding a source transfer address and a transfer data quantity. As a conventional technique of the chained DMA control system, in the Japanese Published Unexamined Patent Application No. Hei 9-319698 (hereunder, referred to as the second published application) has been disclosed a technique regarding the DMA transfer system, in which the descriptor and the transfer data are retained in a continuous region on a memory in a system furnished with a PCI (Peripheral Communication Interconnect) bus.
In the first published application, however, it has been necessary to reserve the basic block of the minimum capacity on the memory and the extended block of a larger capacity than the basic block, in order to store the intermediate code image data. And, when the quantity of the intermediate code image data is equal to (the above minimum capacity +xcex1), for example, the efficiency of the memory in use has been low. Further, there has not been disclosed any countermeasure in case the intermediate code image data cannot still be retained because of a larger quantity of the intermediate code image data, even though the extended block is reserved. Furthermore, there has not been any reference as to the mechanism that effectively supplies the rendering unit with the intermediate code image data and generates the bit map data in the band buffers.
Next, when the intermediate code image data is intended to be supplied to the rendering mechanism by means of the chained DMA transfer disclosed in the second published application, it has been necessary, after determining the transfer data, to reserve a fresh area for the descriptor on the memory and set the management information therein. Furthermore, it requires a stock register (a register for holding the descriptor looked ahead), and has a system restriction that necessarily contains the PCI bus.
The present invention has been made in view of such problems which the conventional technique holds, and provides an image processing device and an image processing method that supply the intermediate code image data generated by band to a hardware rendering mechanism at high speed and enhance the efficiency of the memory in use, and a recording medium for the same.
The image processing device of the present invention has a generation part that interprets the contents of code image data and generates multiple pieces of intermediate code image data for bands formed by dividing a page, a storage part that stores the multiple pieces of the intermediate code image data generated by the generation part, a relation part that relates each of the storage locations of the multiple pieces of intermediate code image data in the storage part with specific orders, a transfer part that refers to the storage locations related by the relation part, reads the multiple pieces of intermediate code image data sequentially from the storage part, and transfers them, and a plotting part that receives the multiple pieces of the intermediate code image data transferred from the transfer part, interprets their contents to execute plotting of images, and stores image data of the plotted images in a buffer memory.
In the image processing device, the relation part may relate each piece of the intermediate code image data to each band, and may relate any pieces of the intermediate code image data with each other in the bands.
The image processing device may further have a part that attaches management information including information about its own data quantity to each piece of the intermediate code image data, and the relation part may hold, in the management information of each piece of the intermediate code image data, information about the storage location in the storage part of the other piece of the intermediate code image data selected in consideration of plotting orders.
In the image processing device, the transfer part may further have a management information utilization part that appropriately rewrites the management information and utilizes it as transfer management information for executing a DMA transfer, and a DMA control part that sequentially reads the management information appropriately rewritten by the management information utilization part, and transfers the intermediate code image data stored in the storage part to the plotting part.
The image processing device may further have a band partition information adding part that adds band partition information indicating a partition between the bands to each piece of the intermediate code image data stored by the storage part, and the plotting part plots the multiple pieces of the intermediate code image data transferred by the transfer part by band in accordance with the band partition information.
The image processing device may further have a page partition information adding part that adds page partition information indicating a partition between the pages to the last piece of the intermediate code image data in a page according to the plotting order, of the intermediate code image data stored by the storage part, and the plotting part terminates plotting for one page by plotting the intermediate code image data having the page partition information added.
In the image processing device, the band partition information adding part may transfer the band partition information from the band not having plotting components to the piece of the intermediate code image data in the other band having the plotting components.
In the image processing device, the page partition information adding part may transfer the page partition information from the band not having the plotting components to the piece of the intermediate code image data in the other band having the plotting components.
The image processing device may further have an output part that reads image data stored in the buffer memory to output it to an output device, and, when switching a front image and a rear image for a double face printing by page to output them to the output device, the transfer part has a part that switches for each page a reading order of the intermediate code image data from the storage part, and the output part has a part that switches a reading direction in unit of page when reading the image data stored in the buffer memory to output it to the output device.
The image processing method of the present invention includes a generation step that interprets contents of code image data and generates multiple pieces of intermediate code image data for respective bands formed by dividing a page, a storage step that stores the multiple pieces of the intermediate code image data generated by the generation step in a storage part, a relation step that relates each of storage locations of multiple pieces of the intermediate code image data in the storage part in specific orders, a transfer step that refers to the storage locations related by the relation step, reads the multiple pieces of intermediate code image data sequentially from the storage part, and transfers them, and a plotting step that receives the multiple pieces of the intermediate code image data, interprets their contents to execute plotting of images, and stores the image data of the plotted images in a buffer memory.
The recording medium of the present invention records a program to execute the image processing method.
In the image processing device, the image processing method, or the recording medium as such, the management information used for management of the intermediate code image data holding block is rewritten into the descriptor being the transfer control information which is supplied to the DMA controller, whereby the chained DMA transfer system can be achieved, and the intermediate code image data can efficiently be transferred to the hardware rendering mechanism.
Further, the intermediate code image data indicating the band partition and the page partition is newly defined to the intermediate code image data transferred to the hardware rendering mechanism in unit of band or in unit of page, and this intermediate code image data is interpreted by the hardware rendering mechanism, whereby the rendering processing becomes possible in unit of band and in unit of page. And, the Duplex (processing to rotate the image by 180xc2x0, which is required for the rear face printing in the double face printing) is facilitated by inverting the order of linking the intermediate code image data holding blocks.